package com.meilai.project.service.administration.seal;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.meilai.project.dto.administration.seal.UseSealFlowDTO;
import com.meilai.project.dto.workflow.WorkFlowExtraCheckDTO;
import com.meilai.project.entity.administration.seal.UseSealFlow;
import com.meilai.project.vo.administration.seal.UseSealFlowVO;

/**
 * <p>
 * 用印申请表 服务类
 * </p>
 *
 * @author xhy
 * @since 2022-01-24
 */
public interface UseSealFlowService extends IService<UseSealFlow> {

    /**
     * 查询分页
     *
     * @param current_page
     * @param page_size
     * @param is_manage_page
     * @param name
     * @param seal_type_id
     * @param seal_type_name
     * @param post
     * @return
     */
    Page<UseSealFlow> selectPage(Integer current_page, Integer page_size, Boolean is_manage_page, String name, Long seal_type_id, String seal_type_name, String post,Long company_id);

    /**
     * 保存流程
     *
     * @param dto
     * @return
     */
    boolean save(UseSealFlowDTO dto);

    /**
     * 提交流程
     *
     * @param dto
     * @return
     */
    boolean begin(UseSealFlowDTO dto);

    /**
     * 通过
     *
     * @param dto
     * @return
     */
    boolean pass(WorkFlowExtraCheckDTO dto);

    /**
     * 退回
     *
     * @param dto
     * @return
     */
    boolean returnBack(WorkFlowExtraCheckDTO dto);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    boolean delete(Long id);

    /**
     * 彻底删除
     *
     * @param id
     * @return
     */
    boolean actualDelete(Long id);

    UseSealFlowVO one(Long id);
}
